package com.kun.framework.data.persistence;

import java.io.File;

/**
 * 坤坤数据持久化接口
 *
 * @author gzc
 * @since 2024/8/21
 **/
public interface DataPersistence<D> {

    /**
     * 从磁盘中读取数据字符串
     *
     * @return 缓存数据字符串
     */
    String dataReadFromDisk();

    /**
     * 缓存数据写入磁盘
     *
     * @param dataStr 数据字符串
     * @return 生成文件对象
     */
    File dataWriteToDisk(String dataStr);

    /**
     * 刷盘
     *
     * @return 输出到本地的文件对象
     */
    File flushDataWriteToDisk();

    /**
     * 数据转换成对象
     *
     * @param dataStr 数据字符串
     * @return 数据对象
     */
    D dataStrConvertObj(String dataStr);

    /**
     * 获取数据对象
     *
     * @return 数据对象
     */
    D getDataObj();

}
